//
//  RaStarManager.h
//  Pods-RaStarSimpleLibrary_Example
//
//  Created by 沈达 on 2018/11/21.
//

#import <Foundation/Foundation.h>

/** 初始化通知 */
FOUNDATION_EXPORT NSString *const RSRegisterNotificationName;
/** 登录通知 */
FOUNDATION_EXPORT NSString *const RSLoginNotificationName;
/** 退登通知 */
FOUNDATION_EXPORT NSString *const RSLogoutNotificationName;
/** 通知 */
FOUNDATION_EXPORT NSString *const RSManagerNotificationName;

typedef enum : NSUInteger {
    /** 创建角色 */
    RaStarCreateRole = 1,
    /** 角色升级 */
    RaStarLevelUp,
    /** 进入服务器 */
    RaStarEnterServer,
    /** 角色改名 */
    RaStarChangeRoleName,
} RaStarKeyAction;

NS_ASSUME_NONNULL_BEGIN

@interface RaStarManager : NSObject

/** Manager */
+ (instancetype)manager;

/** 基本参数设定 application:didFinishLaunchingWithOptions: 中实现 */
- (void)SDKBasicSetting;

/**
 初始化 （默认 mdid = 200000）

 @param cchID 渠道ID
 @param appId AppID
 @param appKey AppKey
 */
- (void)SDKRegisterChannelID:(NSString *)cchID AppID:(NSString *)appId AppKey:(NSString *)appKey;

/**
 登录
 */
- (void)SDKLogin;

/**
 退出登录
 */
- (void)SDKLogout;

/**
 发起内购

 @param amount 金额
 @param roleName 角色名
 @param roleLevel 角色等级
 @param roleID 角色ID
 @param serverID 服务器ID
 @param serverName 服务器名
 @param subject 商品名
 @param orderNumber 订单号
 @param extra 扩展字段
 */
- (void)SDKPaymentAmount:(double)amount RoleName:(NSString *)roleName RoleLevel:(int)roleLevel RoleID:(NSString *)roleID ServerID:(int)serverID ServerName:(NSString *)serverName Subject:(NSString *)subject OrderNumber:(NSString *)orderNumber Extra:(NSString *)extra;


/**
 角色数据上报
 
 @param action 上报动作 - 必传
 @param roleID 角色ID - 必传 改名时上传新名称
 @param roleName 角色名称 必传
 @param roleLevel 角色等级 必传
 @param serverID 服务器ID 必传
 @param serverName 服务器名称 必传
 @param balance 余额 默认传 0
 @param vip VIP等级 默认传 0
 @param partyName 工会名 默认传 @""
 @param extra 扩展字段 - 默认传 @"" 改名时上传旧名称
 */
- (void)updataRoleInfoAction:(RaStarKeyAction)action RoleID:(NSString *)roleID RoleName:(NSString *)roleName RoleLevel:(int)roleLevel ServerID:(int)serverID ServerName:(NSString *)serverName Balance:(NSString *)balance VIPLevel:(int)vip PartyName:(NSString *)partyName Extra:(NSString *)extra;

@end

NS_ASSUME_NONNULL_END
